package com.taru.houseapp.controller;

import com.taru.houseapp.commen.JsonResult;
import com.taru.houseapp.until.FTPUtil;
import com.taru.houseapp.until.UUId;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
@RestController
public class FileController {

//    @Value("${ftp.server.http}")
//    String path;

    // 处理文件上传
    @RequestMapping(value = "/image/upload", method = RequestMethod.POST)
    public JsonResult upload(@RequestParam("files") MultipartFile[] files) throws IOException {
        List<String> fileNmaes=new ArrayList<>();
        JsonResult result=null;
        String fileName="";
        InputStream inputStream=null;
        if(files ==null && files.length<=0){
            new JsonResult(404,"没有上传文件");
        }else {
            for(int i=0;i<files.length;i++){
                //获取上传的文件流
                inputStream=files[i].getInputStream();
                //获取原始文件名称(包含格式)
                String originalFileName= files[i].getOriginalFilename();
                //获取文件类型，以最后一个`.`为标识
                String suffix = originalFileName.substring(originalFileName.lastIndexOf("."));
                //设置文件新名称: 当前时间的毫秒数+文件名称（不包含格式）
                fileName = UUId.getUUID()+ System.currentTimeMillis()+suffix;
                fileNmaes.add(fileName);
            }
        }
        //调用自定义的FTP工具类上传文件
        if(FTPUtil.uploadFile(fileNmaes,inputStream)){
            result=new JsonResult(200,"上传成功",fileNmaes);
        }else {
            result=new JsonResult(500,"服务器内部错误");
        }
        return result;
    }
}
